The simulation of hair by a computer is one of the more challenging subfields of computer animation. Prior approaches to solving such simulations were generally laborious and required many iterations to achieve a desired effect. In one method, graphically simulating hair entails generating and manipulating a subset of hairs called control curves, which are often dynamically animated in the shot, and whose shape and motion is interpolated at the time of rendering to generate the final hairs that are viewed on the screen. True hair-hair volume-preserving collision detection of the possibly millions of final hairs is computationally prohibitive. Consequently, the control curves, typically numbering in the hundreds, are rigged and animated to ensure that the desired look and volume are maintained.
One way of performing this step is to create a lattice structure defining the volume of hair, and rigidly binding control curves thereto. A technical director then animates the lattice by hand to match the artistic motion was specified by the director. The resulting movement is then used as a goal by a hair simulation engine to add realistic dynamic motion detail to the already defined coarse motion of the hand animated control curves.
This technique is illustrated in FIG. 1. Referring to that figure, a flow chart 10 is illustrated where a first step is that an underlying model for the hair is defined (step 12). Control curves may then be defined (step 14), and contemporaneously control vertices may be defined on the control curves (step 16). A lattice is then defined, and the control vertices are bound to the lattice (step 18). As noted above, the lattice is then animated by hand to match the artistic motion desired by a director (step 22). A simulation is run to match the hand animation, as well as to add dynamic motion detail (step 24).
This process is difficult and time-consuming, and often requires multiple iterations in order to achieve the desired result.